// 引入各种函数，便于做成npm包

// import {
  // createStore, // 统一创建全局状态
  // useStore, // 获取全局状态
  // useStoreLocal, // 获取局部状态
  // defineStore, // 单独创建状态，可以全局、局部
  // _store as store // 返回给出外部的状态容器
// } from './_store'

// 状态的容器，静态对象
import { store } from './state/store'
// 创建一批全局状态
import createStore from './state/createStore'

// 创建一个状态，局部状态或者全局状态
import defineStore from './state/defineStore'

// 获取一个全局状态
import useStore from './state/useStore'
// 获取一个局部状态
import useStoreLocal from './state/useStoreLocal'

// 深层拷贝
import { deepSet, deepClone } from './base/assign'
  
// 数组基类
import BaseArray from './base2/base-array'
// 对象基类
import BaseObject from './base2/base-object'

// 创建状态
import OptionState from './base2/option-state'

// 可以给表单用
import Model from './base2/create-object'
// 可以给数据列表用
import List from './base2/create-array'

// 日志
import {
  addLog, // 记录容器
  writeLog // 添加一条记录
} from './base/_log'

export {
  // 日志
  addLog, // 记录容器
  writeLog, // 添加一条记录
  // 基类
  BaseArray, // 数组基类
  BaseObject, // 对象基类
  // 创建状态
  OptionState,
  Model, // 语法糖，创建对象
  List, // 语法糖，创建数组
  // 拷贝
  deepSet,
  deepClone,
  // 状态
  store, // 返回给外部的状态容器
  useStore, // 获取全局状态，
  useStoreLocal, // 获取局部状态
  createStore, // 统一创建全局状态
  defineStore // 单独创建状态，可以全局状态、局部状态
}

export type {
  IStateCreateOption,
  IStateCreateListOption,
  IStateOption,
  IState
} from './types/type'